// .txt

beginzonescript;

variables;

short crime_tolerance = 200;
short last_abil;
short i;
short walk_count = 0;
short r1;

body;

beginstate INIT_STATE;
	sf(57,29,1);
	
	sf(57,5,0);
	sf(57,6,0);
	
	sf(57,24,1);
	
	if (gf(56,20) < 2)
		sf(56,20,0);
	
	set_name(29,"Massive Spawner");
	set_name(30,"Massive Spawner");
	set_name(31,"Massive Spawner");
	set_boss_level(29,1);
	set_boss_level(30,1);
	set_boss_level(31,1);
	
	set_name(57,"Massive Spawner");
	set_name(58,"Massive Spawner");
	set_name(59,"Massive Spawner");
	set_boss_level(57,1);
	set_boss_level(58,1);
	set_boss_level(59,1);
	set_aggression(57,9);
	set_aggression(58,9);
	set_aggression(59,9);
	
	
	add_range_to_group(10,15,1);
	set_aggression(1001,8);
	set_boss_level(1001,1);
	
	add_range_to_group(44,49,2);
	
	//if (get_sdf() > 0) {
		//make_zone_hostile();
		//}

	last_abil = get_current_tick();
	
	set_crime_tolerance(crime_tolerance);
	break;

beginstate EXIT_STATE;

break;

beginstate START_STATE;
	// clear zone?
	if ((zone_clear(ME) == FALSE) && (get_flag(100,15) > 0)) {
		clear_zone(ME);	
		}
		
	//if ((get_crime_level() >= crime_tolerance) && (get_sdf(,) == 0)) {
	//	make_zone_hostile();
	//	set_flag(,,1);
	//	}

	// if (gf(,) == 0) {
	//	if (get_ran(1,0,100) < 10)
	//		give_char_text_bubble(,"");
	//	}
	
	if ((party_near_nav(4,6)) && (gf(56,20) == 0)) {
		sf(57,24,0);
		sf(56,20,1);
		sf(56,21,1);
		
		erase_char(26);
		erase_char(27);
		erase_char(28);
	
		erase_char(32);
		erase_char(33);
		erase_char(34);
		erase_char(35);
		erase_char(36);
		erase_char(37);
		erase_char(38);
		erase_char(39);
		erase_char(40);
		erase_char(41);
		erase_char(42);
		erase_char(43);
		
		set_attitude(1002,10);
		set_resistance(1002,0,0);
		set_resistance(1002,1,0);
		set_resistance(1002,3,0);
		set_resistance(1002,6,0);
		
		begin_talk_mode(9);
		}
		
	if (((is_combat()) && (tick_difference(last_abil,get_current_tick()) > 0)) || ((is_group()) && (tick_difference(last_abil,get_current_tick()) > 3))) {
		last_abil = get_current_tick();
		
		walk_count = walk_count + 1;
		if (walk_count == 5) {
			walk_count = 0;
			if (gf(57,23) == 0)
				sf(57,23,1);
				else sf(57,23,0);
			}
		
		if ((gf(57,5) > 0) && (gf(57,12) == 0) && (gf(57,7) == 0) && (party_dist_to_nav(2) > 8)) {
			r1 = get_ran(1,0,2);
			if (char_ok(26 + r1) == FALSE) {
				spawn_creature(18 + r1);
				set_summon_level(26 + r1,1);
				set_level(26 + r1,22);
				
				if (r1 == 0)
					set_name(26,"Crumbling Roamer");
				if (r1 == 1)
					set_name(27,"Crumbling Podling");
				if (r1 == 2)
					set_name(28,"Crumbling Thahd");
				}
			}
		
		// event
		if (gf(56,20) == 1) {
			inc_flag(56,21,1);
			if (gf(56,21) == 4)
				print_str_color("The central crystal's power flickers slightly.",3);
			if (gf(56,21) == 8)
				print_str_color("The central crystal's power flickers several times.",3);
			if (gf(56,21) == 12)
				print_str_color("The central crystal is growing dimmer.",3);
			if (gf(56,21) == 18) {
				sf(56,20,2);
				sf(57,24,1);
				
				set_attitude(1002,4);
				
				award_party_xp(200,30);

				begin_talk_mode(13);
				}

			}

		if ((gf(57,6) > 0) && (gf(57,13) == 0) && (party_dist_to_nav(5) > 8)) {
			r1 = get_ran(1,0,2);
			if (char_ok(50 + r1) == FALSE) {
				spawn_creature(42 + r1);
				set_summon_level(50 + r1,1);
				set_level(50 + r1,22);
				
				if (r1 == 0)
					set_name(50,"Crumbling Roamer");
				if (r1 == 1)
					set_name(51,"Crumbling Podling");
				if (r1 == 2)
					set_name(52,"Crumbling Glaahk");
				}
				
			}
		}
break;

beginstate 10;
	sf(57,6,1);
break;

//	print_str("");
//	set_terrain_string_range(".",3);
//	set_terrain_string_range("The sign says - .",3);
